feat: update with changes from Ulmo#39
Conversation
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…edx#1700) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
openedx#1736) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…x#1739) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
BREAKING CHANGE: Pre-design-tokens theming is no longer supported. Co-authored-by: Diana Olarte <diana.olarte@edunext.co>
The commit adds eventlistener which picks up the autoAdvance message and triggers the next sequence. This has the same effect of clicking the next button. Signed-off-by: Farhaan Bukhsh <farhaan@opencraft.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…x#1713) * feat: remove waffle flags for managing course outline sidebar * fix: flag and tests * fix: product-tours tests * fix: remove default content for SequenceNavigationSlot and update tests * fix: remove default content for CourseBreadcrumbsSlot * fix: update plugin-slots version and documentation * revert: update plugin-slots version * fix: update tests
* test: remove snapshots and use rtl tests * test: add expected result on map search
* test: remove snapshots and use rtl tests * test: improve coverage on search results test
…date library version (openedx#1768)
…nedx#1763) * feat: use discount info endpoint for streak discount information * feat: pass course run key to discount code info call * feat: move changes behind a flag * fix: use async IIFE inside useEffect * fix: fix line length * fix: remove default value in dev * fix: improve coverage by adding conditional test based on env value * refactor: move logic inside function * refactor: move functions to utils * fix: ignore merge config
Bumps [js-toml](https://github.com/sunnyadn/js-toml) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/sunnyadn/js-toml/releases) - [Commits](sunnyadn/js-toml@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: js-toml dependency-version: 1.0.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v4...v5) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Earlier versions of @openedx/frontend-build used on older version of 'sharp', which caused intermittent installation issues. The version of 'sharp' was updated in @openedx/frontend-build to fix these issues, so the frontend-build version can be updated here, to fix the issues in this project too. See openedx/frontend-build#664 and openedx/frontend-build#665 for more information. The frontend-build dependency was updated by: ``` npm install --package-lock-only @openedx/frontend-build ``` Private-ref: https://tasks.opencraft.com/browse/BB-9953
The previous implementation had a race condition that sometimes prevented XBlocks from being marked as viewed. Users had to scroll or resize the window to trigger visibility tracking instead of having it happen once content loads.
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
Remove @edx/reactifex package from devDependencies as it is no longer needed. Translation extraction functionality has been verified to work correctly without this dependency. Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…9.2 (openedx#1803) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
….2 (openedx#1804) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore: bump frontend-component-header to v6.6.x * chore: bump frontend-component-header to ^8.0.0
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
…enedx#1807) This commit installs version 2.23.1 of @edx/frontend-lib-learning-assistant. This release fixes a bug where the Xpert Learning Assistant was only available to learners in the audit and credit modes. See https://github.com/edx/frontend-lib-learning-assistant/releases/tag/v2.23.1.
Co-authored-by: abdullahwaheed <42172960+abdullahwaheed@users.noreply.github.com>
* feat: add plugin slot for content iframe error component * style: quality * fix: copilot suggestions
…den grades" label in the grade table (openedx#1797) Refactors the grade summary logic to delegate all calculation responsibilities to the backend. Previously, the frontend was performing grade summary computations using data fetched from the API. Now, the API itself provides the fully computed grade summary, simplifying the frontend and ensuring consistent results across clients. Additionally, a "Hidden Grades" label has been added in the grade summary table to clearly indicate sections where grades are not visible to learners. Finally, for visibility settings that depend on the due date, this PR adds a banner on the Progress page indicating that grades are not yet released, along with the relevant due date information.
There was a problem hiding this comment.
Pull request overview
This PR merges changes from the openedx/release/ulmo branch, bringing multiple feature updates and refactorings to prepare for testing. The changes should not yet be released to production.
Key Changes:
- Replaces Chat component with a new LearnerToolsSlot plugin architecture for better extensibility
- Implements exam data fetching functionality with comprehensive test coverage
- Updates unit title from h3 to h1 for accessibility compliance
- Updates certificate image assets and package dependencies
Reviewed changes
Copilot reviewed 30 out of 35 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/plugin-slots/LearnerToolsSlot/* | New plugin slot implementation for learner tools (replaces Chat component) |
| src/courseware/course/Course.jsx | Replaces Chat with LearnerToolsSlot, adds navigation logic |
| src/courseware/course/chat/* | Removes old Chat component and tests |
| src/course-home/progress-tab/* | Adds exam data fetching with hooks and Redux integration |
| src/plugin-slots/UnitTitleSlot/index.jsx | Changes unit title from h3 to h1 for accessibility |
| src/index.scss | Adjusts LTI modal height and adds unit-title styling |
| src/course-home/data/* | Adds exams data API, slice, and thunks |
| src/generic/assets/* | Updates certificate images from OpenEdX to edX branding |
| package.json | Updates @edx/frontend-lib-learning-assistant to 2.24.0 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| && ( | ||
| <ModalDialog | ||
| dialogClassName="modal-lti" | ||
| className="modal-lti" |
There was a problem hiding this comment.
The ModalDialog prop has changed from 'dialogClassName' to 'className'. While this appears to be an intentional API update, ensure that this change is compatible with the version of the Modal component being used and that the modal styling is preserved correctly after this change.
| className="modal-lti" | |
| className="modal-lti" | |
| dialogClassName="modal-lti" |
| unitId={unitId} | ||
| /> | ||
| </> | ||
| {navigationDisabled || ( |
There was a problem hiding this comment.
The conditional logic here appears inverted. The condition reads "navigationDisabled OR (rest of condition)" but then renders the CourseBreadcrumbsSlot inside. This means the breadcrumbs will render when navigation IS disabled, which seems counterintuitive. The logic should likely be negated to only show breadcrumbs when navigation is NOT disabled.
| import { useEffect } from 'react'; | ||
| import { useDispatch } from 'react-redux'; | ||
|
|
||
| import { fetchExamAttemptsData } from '../data/thunks'; | ||
|
|
||
| export function useGetExamsData(courseId, sequenceIds) { | ||
| const dispatch = useDispatch(); | ||
|
|
||
| useEffect(() => { | ||
| dispatch(fetchExamAttemptsData(courseId, sequenceIds)); | ||
| }, [dispatch, courseId, sequenceIds]); |
There was a problem hiding this comment.
The hook dependencies include 'sequenceIds' which is an array. This will cause the effect to re-run on every render even if the array contents are the same, because array identity changes on each render. Consider using a stable reference or memoizing the array more effectively, or use a deep comparison for the dependency.
| import { useEffect } from 'react'; | |
| import { useDispatch } from 'react-redux'; | |
| import { fetchExamAttemptsData } from '../data/thunks'; | |
| export function useGetExamsData(courseId, sequenceIds) { | |
| const dispatch = useDispatch(); | |
| useEffect(() => { | |
| dispatch(fetchExamAttemptsData(courseId, sequenceIds)); | |
| }, [dispatch, courseId, sequenceIds]); | |
| import { useEffect, useMemo } from 'react'; | |
| import { useDispatch } from 'react-redux'; | |
| import { fetchExamAttemptsData } from '../data/thunks'; | |
| export function useGetExamsData(courseId, sequenceIds) { | |
| const dispatch = useDispatch(); | |
| const stableSequenceIds = useMemo( | |
| () => sequenceIds, | |
| [JSON.stringify(sequenceIds)], | |
| ); | |
| useEffect(() => { | |
| dispatch(fetchExamAttemptsData(courseId, stableSequenceIds)); | |
| }, [dispatch, courseId, stableSequenceIds]); |
9697675 to
f4fb3b8
Compare
097afcf to
444d592
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 65 out of 75 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
444d592 to
7989f6d
Compare
|
I think I got something broken here. Closing for now. |
This is a merge of changes from openedx/release/ulmo to what is (in effect) our existing released teak branch (edx/release-teak aliased to edx/release-ulmo).
This should not yet be released, but is a preview of changes for testing purposes.